#ifndef PROPIEDADES_FABRICA_BONUS_H
#define PROPIEDADES_FABRICA_BONUS_H

#include "Textura.h"
#include <string>

class PropiedadesFabricaBonus{

private:
	std::string* id;
	unsigned short int cantidad;
	unsigned short int probabilidad;
	unsigned short int duracion;
	Textura* textura;

public:

	PropiedadesFabricaBonus(const string& id){
		this->id = new string(id);
		this->cantidad = 0;
		this->probabilidad = 0;
		this->duracion = 0;
		this->textura = 0;
	}

	PropiedadesFabricaBonus(const string& id, unsigned short int cantidad, unsigned short int probabilidad,unsigned short int duracion, Textura* textura){
		this->id = new string(id);
		this->cantidad = cantidad;
		this->probabilidad = probabilidad;
		this->duracion = duracion;
		this->textura = textura;
	}

	void decrementarCantidad(){
		this->cantidad-- ;
	}

	std::string getId(){
		return this->id->c_str();
	}
	void setCantidad(int cantidad){
		if(cantidad >= 0)
			this->cantidad = (unsigned short int)cantidad ;
	}

	void setProbabilidad(int probabilidad){
		if(probabilidad >= 0)
			this->probabilidad = (unsigned short int)probabilidad ;  
	}

	void setDuracion(int duracion){
		if(duracion >= 0)
			this->duracion = (unsigned short int)duracion ;
	}

	void setTextura(Textura* textura){
		if(textura != 0){
			if(this->textura)
				delete this->textura ;
		
			this->textura = textura ;
		}
	}

	unsigned short int getCantidad(){
		return this->cantidad;
	}

	unsigned short int getProbabilidad(){
		return this->probabilidad ;  
	}

	unsigned short int getDuracion(){
		return  this->duracion ;
	}

	Textura* getTextura(){
		return this->textura ;
	}

	~PropiedadesFabricaBonus(){
		delete this->id ;
		delete this->textura ;
	}


};


#endif